package com.fa4j.common.data.repository;

import com.fa4j.common.base.model.Page;
import com.fa4j.common.base.model.PageQuery;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Optional;

public interface BaseRepository<T> {

    <Q extends PageQuery> Page<T> queryPage(Q query);

    List<T> queryByIds(Collection<? extends Serializable> ids);

    Optional<T> findById(Serializable id);

    boolean create(T entity);

    boolean modify(T entity);

    boolean remove(T entity);

}
